package com.ruoyi.starbucks.domain;

import java.math.BigInteger;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 星巴克账号对象 starbucks_account
 *
 * @author ruoyi
 * @date 2021-01-08
 */
public class StarbucksAccount extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    private BigInteger id;

    /**
     * 账号token
     */
    @Excel(name = "账号token")
    private String token;

    /**
     * 用户名
     */
    @Excel(name = "用户名")
    private String userName;

    /**
     * 用户id
     */
    @Excel(name = "用户id")
    private String userId;

    /**
     * 用户电话号码
     */
    @Excel(name = "用户电话号码")
    private String cellPhone;

    /**
     * 生日
     */
    @JsonFormat(pattern = "MM/dd/yyyy")
    @Excel(name = "生日", width = 30, dateFormat = "MM/dd/yyyy")
    private Date birthday;

    /**
     * 注册账号的设备名称
     */
    @Excel(name = "注册账号的设备名称")
    private String deviceName;

    /**
     * 账号是否有效
     */
    @Excel(name = "账号是否有效")
    private String isValid;

    /**
     * 是否为新注册
     */
    @Excel(name = "是否为新注册")
    private String isNewAccount;

    /**
     * 名
     */
    @Excel(name = "名")
    private String firstName;

    /**
     * 姓
     */
    @Excel(name = "姓")
    private String lastName;

    /**
     * 性别
     */
    @Excel(name = "性别")
    private String gender;

    /**
     * 当前星星数
     */
    @Excel(name = "当前星星数")
    private Float loyaltyPoints;

    /**
     * 账号的注册日期
     */
    @JsonFormat(pattern = "MM/dd/yyyy")
    @Excel(name = "账号的注册日期", width = 30, dateFormat = "MM/dd/yyyy")
    private Date since;

    /**
     * 当前等级
     */
    @Excel(name = "当前等级")
    private String loyaltyTier;

    /**
     * 距离下次升级的星星数
     */
    @Excel(name = "距离下次升级的星星数")
    private Float pointsToNextTier;

    /**
     * 下一等级
     */
    @Excel(name = "下一等级")
    private String nextTierName;

    /**
     * 同步时间
     */
    @JsonFormat(pattern = "yyyy/MM/dd hh:mm:ss")
    @Excel(name = "同步时间", width = 30, dateFormat = "yyyy/MM/dd hh:mm:ss")
    private Date syncTime;

    /** 失效时间 */
    @JsonFormat(pattern = "yyyy/MM/dd hh:mm:ss")
    @Excel(name = "失效时间", width = 30, dateFormat = "yyyy/MM/dd hh:mm:ss")
    private Date failureTime;

    public Date getFailureTime() {
        return failureTime;
    }

    public void setFailureTime(Date failureTime) {
        this.failureTime = failureTime;
    }

    public void setId(BigInteger id) {
        this.id = id;
    }

    public BigInteger getId() {
        return id;
    }

    public void setToken(String token) {
        this.token = token;
    }

    public String getToken() {
        return token;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    public String getUserId() {
        return userId;
    }

    public void setCellPhone(String cellPhone) {
        this.cellPhone = cellPhone;
    }

    public String getCellPhone() {
        return cellPhone;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }

    public Date getBirthday() {
        return birthday;
    }

    public void setDeviceName(String deviceName) {
        this.deviceName = deviceName;
    }

    public String getDeviceName() {
        return deviceName;
    }

    public void setIsValid(String isValid) {
        this.isValid = isValid;
    }

    public String getIsValid() {
        return isValid;
    }

    public void setIsNewAccount(String isNewAccount) {
        this.isNewAccount = isNewAccount;
    }

    public String getIsNewAccount() {
        return isNewAccount;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    public String getFirstName() {
        return firstName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    public String getLastName() {
        return lastName;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public String getGender() {
        return gender;
    }

    public void setLoyaltyPoints(Float loyaltyPoints) {
        this.loyaltyPoints = loyaltyPoints;
    }

    public Float getLoyaltyPoints() {
        return loyaltyPoints;
    }

    public void setSince(Date since) {
        this.since = since;
    }

    public Date getSince() {
        return since;
    }

    public void setLoyaltyTier(String loyaltyTier) {
        this.loyaltyTier = loyaltyTier;
    }

    public String getLoyaltyTier() {
        return loyaltyTier;
    }

    public void setPointsToNextTier(Float pointsToNextTier) {
        this.pointsToNextTier = pointsToNextTier;
    }

    public Float getPointsToNextTier() {
        return pointsToNextTier;
    }

    public void setNextTierName(String nextTierName) {
        this.nextTierName = nextTierName;
    }

    public String getNextTierName() {
        return nextTierName;
    }

    public void setSyncTime(Date syncTime) {
        this.syncTime = syncTime;
    }

    public Date getSyncTime() {
        return syncTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("token", getToken())
                .append("userName", getUserName())
                .append("userId", getUserId())
                .append("cellPhone", getCellPhone())
                .append("birthday", getBirthday())
                .append("deviceName", getDeviceName())
                .append("isValid", getIsValid())
                .append("isNewAccount", getIsNewAccount())
                .append("firstName", getFirstName())
                .append("lastName", getLastName())
                .append("gender", getGender())
                .append("loyaltyPoints", getLoyaltyPoints())
                .append("since", getSince())
                .append("loyaltyTier", getLoyaltyTier())
                .append("pointsToNextTier", getPointsToNextTier())
                .append("nextTierName", getNextTierName())
                .append("syncTime", getSyncTime())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .toString();
    }
}